﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NewChillers.Models
{
    /// <summary>
    /// 产品模型类 映射product_info表
    /// </summary>
    public class ProductModel
    {
        public int ProcessId { get; set; } // 产品加工编号
        public string ProductSN { get; set; } // 产品序列号
        public DateTime? StartTime { get; set; } // 开始时间
        public DateTime? EndTime { get; set; } // 结束时间
        public TimeSpan? ProcessTime { get; set; } // 加工时间长 数据库中 字段类型是 TIME
        public int RecipeProcess { get; set; } // 哪个流程 (1:流程1 2:流程2)
        public int CycleCount { get; set; } // 循环次数
        public string PressureValue { get; set; } // 最后产品的压力值
        public int WorkstationId { get; set; } // 操作产品的工位ID
        public string Operator { get; set; } // 操作员
        public int ProcessStatus { get; set; } // 加工状态 默认0 (0:正在加工 1:加工完成 2:加工异常/品质不符)


        //// 计算加工时长的方法
        //public void CalculateProcessTime()
        //{
        //    if (StartTime == null || EndTime == null)
        //    {
        //        ProcessTime = null;
        //        return;
        //    }

        //    ProcessTime = EndTime.Value - StartTime.Value;
        //}

        // 计算属性 - 流程显示
        public string RecipeProcessDisplay => RecipeProcess switch
        {
            1 => "流程1",
            2 => "流程2",
            _ => "未知流程"
        };

        // 计算属性 - 状态显示
        public string ProcessStatusDisplay => ProcessStatus switch
        {
            0 => "正在加工",
            1 => "加工完成",
            2 => "加工异常",
            _ => "未知状态"
        };

        // 计算属性 - 工位显示
        public string WorkstationIdDisplay => WorkstationId switch
        {
            1 => "工位1",
            2 => "工位2",
            3 => "工位3",
            4 => "工位4",
            5 => "工位5",
            6 => "工位6",
            _ => "未知工位"
        };

    }
}
